/**
*\file traitement.h
*\author H4201
*/

#ifndef _TRAITEMENT_H_
#define _TRAITEMENT_H_

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <signal.h>

/*GLOBAL VARIABLES*/
/**
nombre de pièces envoyées par secondes
*/
int cadence_piece;
/**
nombre de pièce de mauvaise taille que le traitement doit envoyer
*/
int rebut_oblige;
/**
pourcentage de pièces de mauvaise taille envoyées en moyenne
*/
int pourcentage_rebut;
/**
tableau contenant les tailles des pièces A et B produites
*/
int dimensions[2];
/**
indice dans le tableau dimension des produits actuellement crées
*/
int produit_courant;
/**
indique si l'application est sensée s'arreter
*/
int arret_demande; //boolean
/**
mutex protegant la variable rebut_oblige
*/
pthread_mutex_t mtx_rebut_oblige;
/**
pid de l'application à laquelle on envoit nos messages (arrivée pièce, arret d'urgence)
*/
pid_t pid_application;

/**
	* envois une pièces toute les cadence_piece secondes.
	* il y a une probabilité pourcentage_rebut d'envoyer une pièce avec une taille aléatoire.
	* si rebut_oblige > 0, alors une pièce de taille aléatoire est envoyée.
	*\param parameter parametre inutilisé
*/
void* traitement(void *parameter); 

/**
	* retourne une valeur aléatoire entre a et b
*/
int rand_a_b(int a, int b);

#endif // _TRAITEMENT_H_
